package main

import "fmt"

type Pet interface {
	Name() string
}

type Dog struct {
	name string
}

// 如果这是一个值方法？
func (d *Dog) SetName (name string) {
	d.name = name
}

func (d Dog) Name() string {
	return d.name
}

func main() {
	dog := Dog{"Snoopy"}
	fmt.Println(dog.Name())
	var pet Pet = dog  // 这个如果是一个取址表达式？
	dog.SetName("Goofy")
	fmt.Println(dog.Name())
	fmt.Println(pet.Name())
}